Conversation
959f31f to
35ae101
Compare
Kobzol
left a comment
There was a problem hiding this comment.
Hi, thank you for working on this, it will be great once we can move all of this to Vue! :) This is a pretty big change, and I'd like to try to land it in smaller pieces. Since you found a way to have both the Vue and Svelte versions running side-by-side, do you think that we could land the Vue rewrites in smaller chunks, while keeping Svelte as the default, and then do the switch and remove Svelte once everything has been migrated? It's quite hard to review a 2k line diff PR.
fa5cc4d to
cb413f0
Compare
If you mean to take a Vue component and use it in Svelte, that is probably a problem. Theoretically, it should work, but according to ChatGPT, there is a problem with v-model, which cannot be used. It would require modifying both the Vue and the original Svelte code (bind cannot be used). So basically only Tests.vue and FileManager.vue could be tested this way. I know that 2000 lines is a huge PR. But apart from the editor, I basically just added types/interfaces to the old JS code and added a wrapper for the Svelte store. For easier testing I did not change the functionality anywhere. In the templates I didn't change anything, just changed the Svelte directives to Vue (if, for, function calls, etc.) here. |
|
I thought that since you mentioned that both the Svelte and Vue versions work, that we wouldn't need to use Vue components in Svelte. Just land the new Vue version piece-by-piece until everything is ported. But if you think it would be too complicated, I'll try to review this PR.. |
|
Could you please open a separate PR for d6ee3d1? Thanks! |
Kobzol
left a comment
There was a problem hiding this comment.
Left some review comments.
9ee8517 to
3f70d14
Compare
|
So i finally managed to get the second version of the Editor.vue work. I also try to solve all mentioned bugs. I only can't reproduce the one with assign date buttons. Probably i fix it with |
3f70d14 to
9fbfb67
Compare
|
(I couldn't test it without rebasing locally, so I rebased it for you and force-pushed here. |
195f73c to
eb6970d
Compare
|
Oh, and the backend for comments has changed in the meantime, because the student page TaskDetail has also switched to Vue, and the comment endpoints were migrated to Django Ninja. Well, even though I kind of resigned to doing things properly via small PRs, this PR became a monstrosity.. 😆 But if you can get it working after the rebase with the new backend API, and the bugs I found earlier are fixed, I'm willing to merge it at once and then fix bugs once we encounter them in the wild. |
eb6970d to
5dd91a6
Compare
5dd91a6 to
ebbfb56
Compare
|
I agree that it's very large. The problem is that it's simply a set of files that depend on each other. I think it would still be a problem to migrate it in parts.... So I hope it should work now.. |
|
Yeah it would have to be done incrementally, while the old Svelte page would still work. I will take a look at the functionality, just wanted to note that if we replace the whole Edit task page in one PR, we should also nuke the Svelte version at once. |
Kobzol
left a comment
There was a problem hiding this comment.
Left some review comments.
| <ul v-if="filtered.length && focused"> | ||
| <li | ||
| v-for="(item, i) in filtered" | ||
| :key="i" |
There was a problem hiding this comment.
This is not ok, because the index i will be reused for different items once filtered changes. Let's remove the key altogether, since there is no inner state of the rendered component.
|
Did another UX test, here are some notes:
Could you please also completely remove the Svelte version of I think that the issues with the classes is due to the way you implement reactivity in the |





This is a rewrite of Edit task page into Vue.
Old svelte version is still present and can be accessed by modifying URL
http://127.0.0.1:8000/task/edit/8/ -> http://127.0.0.1:8000/#/task/edit/8/
Main changes:
The rest is essentially a 1:1 rewrite of the old components, with minor changes to make them work in Vue and make it little more clean
I tested editing and creating tasks, file management, tests management, and other related functionality. Everything appears to work the same way as before.